//---------------------------------------------------------------------------

#ifndef NoeudReseauH
#define NoeudReseauH
//---------------------------------------------------------------------------

class NeuroneReseau;
class ReseauConcepts;

class NoeudReseau {

public:
  enum ESens {ES_Entree = 0, ES_Sortie, ES_NBSens};

  __fastcall NoeudReseau();
  virtual __fastcall ~NoeudReseau();

  void __fastcall AddLiaisonVers(NoeudReseau * n);
  void __fastcall RemoveLiaisonVers(NoeudReseau * n);
  void __fastcall Detacher(void);
  void __fastcall SynchroniserAvecReseau(void);
  void __fastcall ActivationExterne(void);

  __property int InstantLastActivation  = { read=FInstantLastActivation };

protected:

  virtual void __fastcall SeReferencer(void);
  virtual void __fastcall SeDereferencer(void);

  __property ReseauConcepts * Reseau  = { read=FReseau, write=SetReseau };

private:
  NeuroneReseau * FNeurones [ES_NBSens];
  ReseauConcepts * FReseau;
  int FInstantLastActivation;
  void __fastcall SetReseau(ReseauConcepts * value);
  void __fastcall ReferencerNoeud(void);
  void __fastcall DereferencerNoeud(void);
};

#endif
